package org.huawei260.OD260;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Author: Amos
 * E-mail: amos@amoscloud.com
 * Date: 2020/12/5
 * Time: 17:39
 * Description:
 *
 * 主要思路
 * 读取输入：从控制台读取一行字符串和整数K。
 * 初始化数据结构：使用一个HashMap来存储每个字符的最长连续出现次数。
 * 遍历字符串：遍历输入的字符串，更新每个字符的最长连续出现次数。
 * 存储和排序：将字符及其最长连续出现次数存储在列表中，并进行降序排序。
 * 输出结果：根据K的值输出结果，如果K大于列表大小，则输出-1，否则输出第K长子串的长度。
 *
 */
public class O0015_第k长子串_answer2 {
	public static void main(String[] args) {
		try (Scanner scanner = new Scanner(System.in)) {
			String line = scanner.nextLine();
			int k = scanner.nextInt();
			solution(line, k);
		}
	}

	private static void solution(String line, int k) {

		// HashMap装置字符和连续出现次数
		Map<Character, Integer> map = new HashMap<>();

		// 遍历字符串
		char[] chars = line.toCharArray();
		// 空串
		if (chars.length == 0) {
			System.out.println(-1);
			return;
		}

		// 记录当前字符
		char cur = chars[0];
		int count = 1;
		// 记录当前字符出现次数
		map.put(cur, count);

		// 遍历字符串
		for (int i = 1; i < chars.length; i++) {
			// 判断是否为当前字符
			if (chars[i] == cur) {
				count++;
//				map.put(cur, count);
			} else{
				// 不为当前字符，更新当前字符，重置出现次数
				cur = chars[i];
				count = 1;
//				map.put(cur, count);
			}

			// 更新map
			map.put(cur, map.containsKey(cur) ? Math.max(map.get(cur), count) : count);

			}

		}
}